好的,今天我們要來用Docker Compose來新增/管理Docker APP
首先要先了解的觀念是Docker APP與 Container還是不一樣的
Docker APP是包含一個或多個以上的Container
並搭配不同參數控制Container所組成
由於以前採用Docker run的方式,一個APP只能運行一個Container
所以常把兩者搞混
但現在有Docker Compose就可以分的很清楚了:
完整Docker Compose 執行Docker APP所包含的檔案:
一個或多個Container + yaml設定檔 + 執行指令
執行指令很簡單,就是在當前目錄去upload .yml檔案
萬年不變!
(新增的yaml設定檔副檔名為.yml
)
docker-compose up -d
UNRAID的方便之處在於,Docker Compose有WebUI的plugin
這樣就能很直觀的管理Docker Compose了
點擊ADD NEW TRACK即可新增一個以Docker Compose建立的APP
這裡新增一個名為test的APP
yaml設定檔則保留在圖上的路徑提示
:這裡的STACK指的是APP
這裡需要解釋的是 COMPOSE UP 跟 COMPOSE DOWN的意思
COMPOSE UP就相當於前面講過的這個指令
可以想成是啟動APP
docker-compose up -d
相反的COMPOSE DOWN則是關閉,也相當於從COMPOSE解除關聯
點擊 "EDIT STACK >> COMPOSE FILE"即可來編輯設定檔
小提示
看到ENV FILE了嗎? 這個檔案可以設定屬性變數
但現在yaml並不複雜,先不需要用到
以下的檔案會命名在每個APP目錄下的docker-compose.yml
version: "2.11"
services:
mysql:
image: mysql:latest
volumes:
- /mnt/user/appdata/mysql:/var/lib/mysql:rw
ports:
- 8888:8080
environment:
MYSQL_ROOT_PASSWORD: test123
MYSQL_DATABASE: testdb
version為設置Docker Compose的版本 可於終端輸入以下指令查看
docker-compose version
services可以包含多個app
app則可以包含多個container
必須要記住這段話,因為這就是Docker Compose的功用阿!
就以上面docker-compose.yml為例,相依性架構大致可以描述成這樣:
services:
。
。
mysql:
。
。
image:
。
。
編輯完成儲存,點擊COMPOSE UP 即可讓APP跑起來
恭喜你完成了最基礎的Docker Compose執行~~